﻿using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace Babylon.Animations
{
    public class KeyFrame<T>
    {
        private readonly float _keyTime;
        private readonly T _value;
        private readonly EasingFunction _easingFunction;

        public KeyFrame(float keyTime, T value, EasingFunction easingFunction)
        {
            _keyTime = keyTime;
            _value = value;
            _easingFunction = easingFunction;
        }


        public KeyFrame(float keyTime, T value) :this(keyTime, value, Easing.Linear)
        {
            
        }

        public EasingFunction EasingFunction
        {
            get { return _easingFunction; }
        }

        public T Value
        {
            get { return _value; }
        }

        public float KeyTime
        {
            get { return _keyTime; }
        }

        internal float NormalizedKeyTime { get; set; }

    }
}
